/**
 * @param { import("knex").Knex } knex
 * @returns { Promise<void> } 
 */
exports.seed = async function(knex) {
  // 清除现有数据
  await knex('tasks').del()
  await knex('users').del()

  // 插入用户数据
  await knex('users').insert([
    {
      username: 'admin',
      email: 'admin@example.com',
      password_hash: '$2b$10$example.hash.for.demo', // 实际项目中应使用真实的密码哈希
      first_name: 'Admin',
      last_name: 'User',
      is_active: true
    },
    {
      username: 'testuser',
      email: 'test@example.com', 
      password_hash: '$2b$10$example.hash.for.demo',
      first_name: 'Test',
      last_name: 'User',
      is_active: true
    }
  ])

  // 获取插入的用户ID
  const adminUser = await knex('users').where('username', 'admin').first()
  const testUser = await knex('users').where('username', 'testuser').first()

  // 插入任务数据
  await knex('tasks').insert([
    {
      title: '欢迎使用任务管理器',
      description: '这是一个示例任务，展示了如何使用 Electron + Vite + Knex + SQLite3 构建的应用',
      completed: false,
      user_id: adminUser.id,
      priority: 'high'
    },
    {
      title: '学习 Electron 开发',
      description: '了解 Electron 的主进程和渲染进程通信机制',
      completed: false,
      user_id: adminUser.id,
      priority: 'medium'
    },
    {
      title: '配置数据库',
      description: '使用 Knex 和 SQLite3 配置本地数据库',
      completed: true,
      user_id: testUser.id,
      priority: 'high'
    }
  ])
}